/**
 * 部门管理
 * @return {}
 */
var priDeptsTree = function() {
	var priDeptsTreePanel = new Ext.tree.TreePanel({
				id : 'priDeptsTreePanel',
				region : 'west',
				width : 350,
				autoScroll : true,
				enableDD : false,// 是否支持拖拽效果
				loader : new Ext.tree.TreeLoader({
							dataUrl : __ctxPath
									+ "/systemDept/selectDeptTreeById"
						}),
				rootVisible : false,
				root : new Ext.tree.AsyncTreeNode({
							draggable : false,
							leaf : false,
							expand : true
						}),
				tbar : [{
							xtype : "button",
							text : "展开",
							iconCls : "btn-expand",
							scope : this,
							handler : function() {
								priDeptsTreePanel.expandAll();
							}
						}, {
							xtype : "tbseparator"
						}, {
							xtype : "button",
							text : "收起",
							iconCls : "btn-collapse",
							scope : this,
							handler : function() {
								priDeptsTreePanel.collapseAll();
							}
						}, {
							xtype : "tbseparator"
						}, "->", {
							id : "refresh",
							xtype : "button",
							text : "刷新",
							iconCls : "btn-refresh",
							handler : function() {
								priDeptsTreePanel.getRootNode().reload();
							}
						}]
			});

//	priDeptsTreePanel.expandAll();
	priDeptsTreePanel.on('rightClickCont', priDeptsTreePanel.rightClick,
			priDeptsTreePanel);

	var rightClick = new Ext.menu.Menu({
				items : [{
					text : '新增子节点',
					iconCls : "btn-add",
					handler : function() {
						var selectModel = priDeptsTreePanel
								.getSelectionModel();
						var node = selectModel.getSelectedNode();
						var rank = parseInt(node.attributes.url) + 1;

						Ext.getCmp('savePridepts').enable();
						Ext.getCmp('priDeptsForm').getForm().reset();

						Ext.getCmp('priDepts_parentId').setValue(node.id);
						Ext.getCmp('priDepts_parentId_hidden')
								.setValue(node.id);
						Ext.getCmp("flag").setValue("insert");

					}
				}]
			});

	// 添加点击事件
	priDeptsTreePanel.on('click', function(node) {
				if (node.id != 0) {
					Ext.getCmp('savePridepts').enable();
					Ext.getCmp('priDeptsForm').load({
						url : __ctxPath + "/systemDept/selectDeptMsgById",
						method : "POST",
						params : {
							deptId : node.id
						},
						root : 'data',
						success : function(form, action) {
							var jsonData = action.result.data;
							Ext.getCmp('priDepts_id_hidden')
									.setValue(jsonData.id);
							Ext.getCmp("flag").setValue("update");
						},
						failure : function(form, action) {
							Ext.MessageBox.show({
											title : "操作信息",
											msg : "数据加载失败!",
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.ERROR
										});
						}
					});
				}
			});

	// 增加右键弹出事件
	priDeptsTreePanel.on('contextmenu', function(node, event) {// 声明菜单类型
				event.preventDefault();// 这行是必须的，使用preventDefault方法可防止浏览器的默认事件操作发生。
				node.select();
				rightClick.showAt(event.getXY());// 取得鼠标点击坐标，展示菜单
			});

	return priDeptsTreePanel;
}

var updatepriDepts = function() {
	var priDeptsBaseInfoField = new Ext.form.FieldSet({
		collapsible : false,
		border : false,
		buttonAlign : 'center',
		layout : 'form',
		items : [ {
					xtype : 'textfield',
					name : 'name',
					anchor : '100%',
					allowBlank : false,
					blankText : '不能为空...',
					fieldLabel : '名称'
				}, {
					xtype : 'compositefield',
					fieldLabel : '是否可用',
					items : [{
								xtype : 'radio',
								boxLabel : '是',
								inputValue : "1",
								name : "isShow",
								checked : true
							}, {
								xtype : 'radio',
								boxLabel : '否',
								name : "isShow",
								inputValue : "0"
							}]
				},{
					id:'priDepts_parentId',
					xtype : 'textfield',
					fieldLabel : '父编号',
					anchor : '100%',
					disabled : true,
					name : 'parentId'
				}, {
					xtype : 'textfield',
					fieldLabel : '编号',
					anchor : '100%',
					disabled : true,
					name : 'id'
				},{
					xtype : 'textfield',
					fieldLabel : '创建人',
					anchor : '100%',
					disabled : true,
					name : 'createdMan'
				},{
					xtype : 'textfield',
					fieldLabel : '创建时间',
					anchor : '100%',
					disabled : true,
					name : 'createdAt'
				},{
					xtype : 'textfield',
					fieldLabel : '修改人',
					anchor : '100%',
					disabled : true,
					name : 'updatedMan'
				},{
					xtype : 'textfield',
					fieldLabel : '修改时间',
					anchor : '100%',
					disabled : true,
					name : 'updatedAt'
				}, {
					xtype : 'textfield',
					hidden : true,
					id : 'priDepts_id_hidden',
					name : 'id'
				},{
					id:'priDepts_parentId_hidden',
					xtype:'textfield',
					name:'parentId',
					hidden : true
				}, {
					xtype : 'textfield',
					hidden : true,
					value : '',
					id : 'flag'
				}]
		});

	var centerPanel = new Ext.form.FormPanel({
				title : '部门信息',
				id : 'priDeptsForm',
				region : 'center',
				frame : true,
				buttonAlign : 'center',
				labelAlign : 'right',
				border : false,
				reader : new Ext.data.JsonReader({
							success : 'success',
							root : 'data'
						}, [{
									name : 'id'
								}, {
									name : 'parentId'
								}, {
									name : 'name'
								}, {
									name : 'isShow'
								}, {
									name : 'createdMan'
								}, {
									name : 'createdAt'
								}, {
									name : 'updatedMan'
								}, {
									name : 'updatedAt'
								}]),
				items : [priDeptsBaseInfoField],
				buttons : [{
							text : '保存',
							id : 'savePridepts',
							disabled : true,
							handler : function() {
								var flag = Ext.getCmp("flag").getValue();;
								savePridepts(flag);
							}
						}]
			});
	return centerPanel;
}

var priDeptsPanel = function() {
	return new Ext.Panel({
				anchor : '100% 100%',
				border : false,
				layout : 'border',
				items : [priDeptsTree(), updatepriDepts()]
			});
}

var savePridepts = function(flag) {
	var form = Ext.getCmp("priDeptsForm");
	if (form.getForm().isValid()) {
		var url = "";
		if (flag == 'insert') {
			url = __ctxPath + "/systemDept/insetDept";
		}
		if (flag == 'update') {
			url = __ctxPath + "/systemDept/updateDeptById";
		}
		Ext.Msg.confirm("信息确认", "您确认要保存吗？", function(c) {
					if (c == "yes") {
						form.getForm().submit({
							url : url,
							method : "POST",
							success : function(form, action) {
								Ext.MessageBox.show({
											title : "信息提示",
											msg : "保存成功!",
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.INFO
										});
								Ext.getCmp('priDeptsTreePanel')
										.getRootNode().reload();
								Ext.getCmp("flag").setValue("update");
							},
							failure : function(c, d) {
								Ext.MessageBox.show({
											title : "操作信息",
											msg : "保存失败，请重新保存!",
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.ERROR
										});
							}
						});
					}
				});
	}
};
Ext.getCmp("centerTabPanel").getActiveTab().add(priDeptsPanel());
Ext.getCmp("centerTabPanel").getActiveTab().doLayout();